static void
ce_free_mark(ce_mark *mark)
{
- xfree(mark->id);
+ dequeue(&mark->Q);
+ if (mark->id)
+ xfree(mark->id);
if (mark->created)
xfree(mark->created);
xfree(mark);
// Don't free the waypoint since this is done elsewhere
}
+/* Allocate a mark */
+static ce_mark *
+ce_alloc_mark(const waypoint *wpt, const char *id)
+{
+ ce_mark *res = xcalloc(sizeof(ce_mark), 1);
+ res->id = (char *) id;
+ res->wp = (waypoint *) wpt;
+ return res;
+}
+
#if !HAVE_LIBEXPAT
void
ce_rd_init(const char *fname)
// Create a CE route object and add it to the list of routes
currentRoute = (ce_route *) xcalloc(sizeof (ce_route), 1);
currentRoute->id=xstrdup(ap[1]);
- if (doing_rtes)
- currentRoute->r = route_head_alloc();
+ currentRoute->r = route_head_alloc();
QUEUE_INIT(¤tRoute->ce_mark_head);
- if (doing_rtes)
- ce_add_route(currentRoute);
+ ce_add_route(currentRoute);
}
}
} else if (0 == strcmp(el, "Mark")) {
inMark = 1;
- currentMark = (ce_mark *) xcalloc(sizeof (ce_mark), 1);
- currentMark->wp = NULL;
- currentMark->used = 0;
+ currentMark = ce_alloc_mark(NULL, NULL);
ce_add_mark(currentMark);
for (ap = attr; *ap; ap+=2) {
if (0 == strcmp(ap[0], "id")) {
{
const char *el = xml_convert_to_char_string(xml_el);
if (0 == strcmp(el, "Route")) {
- if (!doing_rtes)
- ce_free_route(currentRoute);
- inRoute = 0;
+ inRoute = 0; /* ??? */
}
else if (0 == strcmp(el, "Mark"))
inMark = 0;
if (inRoute) {
// We are processing the marks in a route so create a CE mark object
// and add it to the current route
- ce_mark *mark = (ce_mark *) xcalloc(sizeof (ce_mark), 1);
- mark->id = xstrdup(s);
- mark->created = NULL;
- mark->wp = NULL;
+ ce_mark *mark = (ce_mark *) ce_alloc_mark(NULL, xstrdup(s));
ce_add_mark_to_route(currentRoute, mark);
}
} else if (0 == strcmp(element, "Position")) {
}
}
else if (inRoute) {
- if (doing_rtes)
currentRoute->r->rte_name = xstrdup(s);
}
} else if (0 == strcmp(element, "Description")) {
ce_mark *mark = (ce_mark *) elem;
if (mark->used)
{
- dequeue(elem);
if (mark->wp)
waypt_free(mark->wp);
ce_free_mark(mark);
*/
queue *elem, *tmp;
- if (doing_rtes) {
- ce_fix_route_mark_waypoints();
+ ce_fix_route_mark_waypoints();
ce_check_route_names();
- ce_remove_used_marks();
- }
+ ce_remove_used_marks();
// Log results
if (global_opts.debug_level > 1)
// Add routes to GPSBabel
QUEUE_FOR_EACH(&ce_route_head, elem, tmp) {
ce_route *route = (ce_route *) elem;
- if (doing_rtes) {
queue *elem2, *tmp2;
route_add_head(route->r);
QUEUE_FOR_EACH(&route->ce_mark_head, elem2, tmp2) {
else
printf("Undefined mark: %s\n", mark->id);
}
- }
ce_free_route(route);
}
xml_buffer = xcalloc(MY_XBUF, 1);
ofd = gbfopen(fname, "w", MYNAME);
+ srand(gpsbabel_now);
}
void
static void
ce_route_hdr(const route_head *rte)
{
- if (doing_rtes) {
- sprintf(xml_buffer, "{%s}", ce_gen_uuid());
- write_xml_entity_begin2(ofd, "\t", "Route", "created", ce_gen_current_time(), "id", xml_buffer);
- write_xml_entity_begin0(ofd, "\t\t", "Marks");
- }
+ sprintf(xml_buffer, "{%s}", ce_gen_uuid());
+ write_xml_entity_begin2(ofd, "\t", "Route", "created", ce_gen_current_time(), "id", xml_buffer);
+ write_xml_entity_begin0(ofd, "\t\t", "Marks");
}
/* Generate route body XML */
{
char *uuid = ce_gen_uuid();
char *id = xcalloc(strlen(uuid)+3, 1);
+
sprintf(id, "{%s}", uuid);
- currentMark = (ce_mark *) xcalloc(sizeof (ce_mark), 1);
- currentMark->id = id;
- currentMark->wp = (waypoint *) waypointp;
+ currentMark = ce_alloc_mark(waypointp, id);
ENQUEUE_TAIL(&ce_mark_head, ¤tMark->Q);
+
gbfprintf(ofd, "\t\t\t%s\n", id); // CE's departure from XML standard!
}
static void
ce_route_tlr(const route_head *rte)
{
- if (doing_rtes) {
- write_xml_entity_end(ofd, "\t\t", "Marks");
- write_optional_xml_entity(ofd, "\t\t", "Name", rte->rte_name);
- write_xml_entity_end(ofd, "\t", "Route");
- }
+ write_xml_entity_end(ofd, "\t\t", "Marks");
+ write_optional_xml_entity(ofd, "\t\t", "Name", rte->rte_name);
+ write_xml_entity_end(ofd, "\t", "Route");
}
/* Generate waypoint body XML */
write_optional_xml_entity(ofd, "\t\t", "Name", wp->shortname);
}
-/* Generate a standalone mark XML */
+static char *
+ce_find_uuid(const waypoint *wpt)
+{
+ queue *elem, *tmp;
+
+ QUEUE_FOR_EACH(&ce_mark_head, elem, tmp) {
+ ce_mark *mark = (ce_mark *) elem;
+ if (mark->wp == wpt) {
+ return mark->id;
+ }
+ }
+ return NULL;
+}
+
+static waypoint *
+ce_find_wpt(const waypoint *wpt)
+{
+ queue *elem, *tmp;
+
+ QUEUE_FOR_EACH(&ce_mark_head, elem, tmp) {
+ ce_mark *mark = (ce_mark *) elem;
+ if ((mark->wp->shortname == wpt->shortname) &&
+ (mark->wp->latitude == wpt->latitude) &&
+ (mark->wp->longitude == wpt->longitude))
+ return mark->wp;
+ }
+ return NULL;
+}
+
+/* Generate a mark XML; look for created id's */
static void
ce_mark_pr(const waypoint *wp)
{
+ char *id;
+
+ if (inRoute) {
+ id = ce_find_uuid(wp);
+ if (id == NULL) {
+ sprintf(xml_buffer, "{%s}", ce_gen_uuid());
+ id = xml_buffer;
+ }
+ }
+ /* Have we seen and written the (nearly) same waypoint ? */
+ else if (ce_find_wpt(wp) != NULL) return;
+ else {
+ ce_mark *mark = ce_alloc_mark(wp, NULL);
+ ENQUEUE_TAIL(&ce_mark_head, &mark->Q);
+ sprintf(xml_buffer, "{%s}", ce_gen_uuid());
+ id = xml_buffer;
+ }
write_xml_entity_begin2(ofd, "\t", "Mark",
- "created", ce_gen_creation_time(wp->creation_time),
- "id", ce_gen_uuid());
+ "created", ce_gen_creation_time(wp->creation_time),
+ "id", id);
ce_waypt_pr(wp);
write_xml_entity_end(ofd, "\t", "Mark");
}
ce_marks_pr(void)
{
queue *elem, *tmp;
+
QUEUE_FOR_EACH(&ce_mark_head, elem, tmp) {
ce_mark *mark = (ce_mark *) elem;
ce_mark_pr(mark->wp);
+ }
+}
+
+/* Release all generated marks */
+static void
+ce_marks_flush_all(void)
+{
+ queue *elem, *tmp;
+
+ QUEUE_FOR_EACH(&ce_mark_head, elem, tmp) {
+ ce_mark *mark = (ce_mark *) elem;
ce_free_mark(mark);
}
}
ce_gen_current_time());
write_xml_entity(ofd, "\t", "Name", "Navigation Objects");
+ inRoute = 1;
route_disp_all(ce_route_hdr, ce_route_tlr, ce_route_disp);
ce_marks_pr();
+ inRoute = 0;
+
waypt_disp_all(ce_mark_pr);
-
+ ce_marks_flush_all();
+
write_xml_entity_end(ofd, "", "NavObjectCollection");
}
</Marks>
<Name>Into The Bay</Name>
</Route>
- <Mark created="20041105T170909Z" id="b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf">
+ <Mark created="20041105T170909Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
<Position>37.763290 N 122.282580 W</Position>
<Name>SFBALBAY</Name>
</Mark>
- <Mark created="20041105T170910Z" id="c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf">
+ <Mark created="20041105T170910Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
<Position>37.751613 N 122.339028 W</Position>
<Name>SFBAY001</Name>
</Mark>
- <Mark created="20041105T170913Z" id="d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf">
+ <Mark created="20041105T170913Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
<Position>37.817420 N 122.394305 W</Position>
<Name>SFBAY002</Name>
</Mark>
- <Mark created="20041105T170916Z" id="e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef">
+ <Mark created="20041105T170916Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
<Position>37.819339 N 122.478302 W</Position>
<Name>SFGGBRDG</Name>
</Mark>
- <Mark created="20041105T170920Z" id="f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff">
+ <Mark created="20041105T170920Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
<Position>37.773033 N 122.605838 W</Position>
<Name>SFCHNL01</Name>
</Mark>
- <Mark created="20041105T170926Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+ <Mark created="20041105T170926Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
<Position>37.518860 N 122.529914 W</Position>
<Name>HMCOLREF</Name>
</Mark>
- <Mark created="20041105T170927Z" id="10111213-1415-1617-1819-1a1b1c1d1e1f">
+ <Mark created="20041105T170927Z" id="{70717273-7475-7677-7879-7a7b7c7d7e7f}">
<Position>37.482348 N 122.507704 W</Position>
<Name>HMPILL01</Name>
</Mark>
- <Mark created="20041105T211624Z" id="20212223-2425-2627-2829-2a2b2c2d2e2f">
+ <Mark created="20041105T211624Z" id="{80818283-8485-8687-8889-8a8b8c8d8e8f}">
<Position>37.475062 N 122.488531 W</Position>
<Name>HMPILLPT</Name>
</Mark>
- <Mark created="20041105T170929Z" id="30313233-3435-3637-3839-3a3b3c3d3e3f">
+ <Mark created="20041105T170929Z" id="{90919293-9495-9697-9899-9a9b9c9d9e9f}">
<Position>37.476448 N 122.475800 W</Position>
<Name>HMPILL02</Name>
</Mark>
- <Mark created="20041105T170930Z" id="40414243-4445-4647-4849-4a4b4c4d4e4f">
+ <Mark created="20041105T170930Z" id="{a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf}">
<Position>37.495102 N 122.483927 W</Position>
<Name>HMPILL03</Name>
</Mark>
- <Mark created="20041105T211300Z" id="50515253-5455-5657-5859-5a5b5c5d5e5f">
+ <Mark created="20041105T211300Z" id="{b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf}">
<Position>37.229349 N 122.441589 W</Position>
<Name>PESCDR01</Name>
</Mark>
- <Mark created="20041105T211324Z" id="60616263-6465-6667-6869-6a6b6c6d6e6f">
+ <Mark created="20041105T211324Z" id="{c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf}">
<Position>37.183397 N 122.411904 W</Position>
<Name>PIGEON01</Name>
</Mark>
- <Mark created="20041105T211341Z" id="70717273-7475-7677-7879-7a7b7c7d7e7f">
+ <Mark created="20041105T211341Z" id="{d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf}">
<Position>37.090736 N 122.348775 W</Position>
<Name>ANONUV01</Name>
</Mark>
- <Mark created="20041105T211409Z" id="80818283-8485-8687-8889-8a8b8c8d8e8f">
+ <Mark created="20041105T211409Z" id="{e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef}">
<Position>36.929502 N 122.113725 W</Position>
<Name>SCRUZ01</Name>
</Mark>
- <Mark created="20041105T211416Z" id="90919293-9495-9697-9899-9a9b9c9d9e9f">
+ <Mark created="20041105T211416Z" id="{f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff}">
<Position>36.934235 N 122.022130 W</Position>
<Name>SCRUZ02</Name>
</Mark>
- <Mark created="20041105T211420Z" id="a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf">
+ <Mark created="20041105T211420Z" id="{00010203-0405-0607-0809-0a0b0c0d0e0f}">
<Position>36.960666 N 122.024734 W</Position>
<Name>SCRUZENT</Name>
</Mark>
- <Mark created="20041105T212422Z" id="b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf">
+ <Mark created="20041105T212422Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
<Position>36.581344 N 121.995411 W</Position>
<Name>CYPRSSPT</Name>
</Mark>
- <Mark created="20041105T212438Z" id="c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf">
+ <Mark created="20041105T212438Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
<Position>36.301110 N 121.919097 W</Position>
<Name>PTSUR</Name>
</Mark>
- <Mark created="20041105T212515Z" id="d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf">
+ <Mark created="20041105T212515Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
<Position>36.238177 N 121.855209 W</Position>
<Name>COOPERPT</Name>
</Mark>
- <Mark created="20041105T212526Z" id="e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef">
+ <Mark created="20041105T212526Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
<Position>36.225175 N 121.801314 W</Position>
<Name>PFEIFENT</Name>
</Mark>
- <Mark created="20041105T212531Z" id="f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff">
+ <Mark created="20041105T212531Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
<Position>36.230449 N 121.797444 W</Position>
<Name>PFEIFANC</Name>
</Mark>
- <Mark created="20041105T212826Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+ <Mark created="20041105T212826Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
<Position>35.879801 N 121.498947 W</Position>
<Name>SANMRT01</Name>
</Mark>
- <Mark created="20041105T212833Z" id="10111213-1415-1617-1819-1a1b1c1d1e1f">
+ <Mark created="20041105T212833Z" id="{70717273-7475-7677-7879-7a7b7c7d7e7f}">
<Position>35.652801 N 121.308485 W</Position>
<Name>PDRSBLNC</Name>
</Mark>
- <Mark created="20041105T212850Z" id="20212223-2425-2627-2829-2a2b2c2d2e2f">
+ <Mark created="20041105T212850Z" id="{80818283-8485-8687-8889-8a8b8c8d8e8f}">
<Position>35.623297 N 121.185920 W</Position>
<Name>SNSMNENT</Name>
</Mark>
- <Mark created="20041105T212853Z" id="30313233-3435-3637-3839-3a3b3c3d3e3f">
+ <Mark created="20041105T212853Z" id="{90919293-9495-9697-9899-9a9b9c9d9e9f}">
<Position>35.640478 N 121.183772 W</Position>
<Name>SNSMNANC</Name>
</Mark>
- <Mark created="20041105T213618Z" id="40414243-4445-4647-4849-4a4b4c4d4e4f">
+ <Mark created="20041105T213618Z" id="{a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf}">
<Position>35.572353 N 121.152797 W</Position>
<Name>CAMBRIA</Name>
</Mark>
- <Mark created="20041105T213626Z" id="50515253-5455-5657-5859-5a5b5c5d5e5f">
+ <Mark created="20041105T213626Z" id="{b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf}">
<Position>35.449214 N 121.020825 W</Position>
<Name>PTESTERO</Name>
</Mark>
- <Mark created="20041105T213635Z" id="60616263-6465-6667-6869-6a6b6c6d6e6f">
+ <Mark created="20041105T213635Z" id="{c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf}">
<Position>35.216602 N 120.928391 W</Position>
<Name>PTBUCHON</Name>
</Mark>
- <Mark created="20041105T213642Z" id="70717273-7475-7677-7879-7a7b7c7d7e7f">
+ <Mark created="20041105T213642Z" id="{d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf}">
<Position>34.883361 N 120.684631 W</Position>
<Name>PTSAL01</Name>
</Mark>
- <Mark created="20041105T213647Z" id="80818283-8485-8687-8889-8a8b8c8d8e8f">
+ <Mark created="20041105T213647Z" id="{e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef}">
<Position>34.884641 N 120.652026 W</Position>
<Name>PTSALENT</Name>
</Mark>
- <Mark created="20041105T213704Z" id="90919293-9495-9697-9899-9a9b9c9d9e9f">
+ <Mark created="20041105T213704Z" id="{f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff}">
<Position>34.896555 N 120.649124 W</Position>
<Name>PTSALANC</Name>
</Mark>
- <Mark created="20041105T213949Z" id="a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf">
+ <Mark created="20041105T213949Z" id="{00010203-0405-0607-0809-0a0b0c0d0e0f}">
<Position>34.758180 N 120.642516 W</Position>
<Name>PURSMAPT</Name>
</Mark>
- <Mark created="20041105T213954Z" id="b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf">
+ <Mark created="20041105T213954Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
<Position>34.572579 N 120.663636 W</Position>
<Name>PTARGLLO</Name>
</Mark>
- <Mark created="20041105T214005Z" id="c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf">
+ <Mark created="20041105T214005Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
<Position>34.113844 N 120.492630 W</Position>
<Name>SANMGL01</Name>
</Mark>
- <Mark created="20041105T214044Z" id="d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf">
+ <Mark created="20041105T214044Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
<Position>34.029483 N 120.471409 W</Position>
<Name>SANMGL02</Name>
</Mark>
- <Mark created="20041105T214048Z" id="e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef">
+ <Mark created="20041105T214048Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
<Position>34.019184 N 120.444197 W</Position>
<Name>SANMGL03</Name>
</Mark>
- <Mark created="20041105T214057Z" id="f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff">
+ <Mark created="20041105T214057Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
<Position>34.023478 N 120.438209 W</Position>
<Name>ADCOVENT</Name>
</Mark>
- <Mark created="20041105T214059Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+ <Mark created="20041105T214059Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
<Position>34.028615 N 120.439696 W</Position>
<Name>ADCOVANC</Name>
</Mark>
xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
<time>1970-01-01T00:00:00Z</time>
<bounds minlat="34.019184000" minlon="-122.605838000" maxlat="37.819339000" maxlon="-120.438209000"/>
-<wpt lat="37.763290000" lon="-122.282580000">
-<time>2004-11-05T17:09:09Z</time>
- <name>SFBALBAY</name>
- <cmt>SFBALBAY</cmt>
- <desc>SFBALBAY</desc>
-</wpt>
-<wpt lat="37.751613000" lon="-122.339028000">
-<time>2004-11-05T17:09:10Z</time>
- <name>SFBAY001</name>
- <cmt>SFBAY001</cmt>
- <desc>SFBAY001</desc>
-</wpt>
-<wpt lat="37.817420000" lon="-122.394305000">
-<time>2004-11-05T17:09:13Z</time>
- <name>SFBAY002</name>
- <cmt>SFBAY002</cmt>
- <desc>SFBAY002</desc>
-</wpt>
-<wpt lat="37.819339000" lon="-122.478302000">
-<time>2004-11-05T17:09:16Z</time>
- <name>SFGGBRDG</name>
- <cmt>SFGGBRDG</cmt>
- <desc>SFGGBRDG</desc>
-</wpt>
-<wpt lat="37.773033000" lon="-122.605838000">
-<time>2004-11-05T17:09:20Z</time>
- <name>SFCHNL01</name>
- <cmt>SFCHNL01</cmt>
- <desc>SFCHNL01</desc>
-</wpt>
-<wpt lat="37.518860000" lon="-122.529914000">
-<time>2004-11-05T17:09:26Z</time>
- <name>HMCOLREF</name>
- <cmt>HMCOLREF</cmt>
- <desc>HMCOLREF</desc>
-</wpt>
-<wpt lat="37.482348000" lon="-122.507704000">
-<time>2004-11-05T17:09:27Z</time>
- <name>HMPILL01</name>
- <cmt>HMPILL01</cmt>
- <desc>HMPILL01</desc>
-</wpt>
-<wpt lat="37.476448000" lon="-122.475800000">
-<time>2004-11-05T17:09:29Z</time>
- <name>HMPILL02</name>
- <cmt>HMPILL02</cmt>
- <desc>HMPILL02</desc>
-</wpt>
-<wpt lat="37.495102000" lon="-122.483927000">
-<time>2004-11-05T17:09:30Z</time>
- <name>HMPILL03</name>
- <cmt>HMPILL03</cmt>
- <desc>HMPILL03</desc>
-</wpt>
<wpt lat="37.229349000" lon="-122.441589000">
<time>2004-11-05T21:13:00Z</time>
<name>PESCDR01</name>
<cmt>SCRUZENT</cmt>
<desc>SCRUZENT</desc>
</wpt>
-<wpt lat="37.475062000" lon="-122.488531000">
-<time>2004-11-05T21:16:24Z</time>
- <name>HMPILLPT</name>
- <cmt>HMPILLPT</cmt>
- <desc>HMPILLPT</desc>
-</wpt>
<wpt lat="36.581344000" lon="-121.995411000">
<time>2004-11-05T21:24:22Z</time>
<name>CYPRSSPT</name>
<cmt>ADCOVANC</cmt>
<desc>ADCOVANC</desc>
</wpt>
+<rte>
+ <name>Into The Bay</name>
+ <rtept lat="37.763290000" lon="-122.282580000">
+<time>2004-11-05T17:09:09Z</time>
+ <name>SFBALBAY</name>
+ </rtept>
+ <rtept lat="37.751613000" lon="-122.339028000">
+<time>2004-11-05T17:09:10Z</time>
+ <name>SFBAY001</name>
+ </rtept>
+ <rtept lat="37.817420000" lon="-122.394305000">
+<time>2004-11-05T17:09:13Z</time>
+ <name>SFBAY002</name>
+ </rtept>
+ <rtept lat="37.819339000" lon="-122.478302000">
+<time>2004-11-05T17:09:16Z</time>
+ <name>SFGGBRDG</name>
+ </rtept>
+ <rtept lat="37.773033000" lon="-122.605838000">
+<time>2004-11-05T17:09:20Z</time>
+ <name>SFCHNL01</name>
+ </rtept>
+ <rtept lat="37.518860000" lon="-122.529914000">
+<time>2004-11-05T17:09:26Z</time>
+ <name>HMCOLREF</name>
+ </rtept>
+ <rtept lat="37.482348000" lon="-122.507704000">
+<time>2004-11-05T17:09:27Z</time>
+ <name>HMPILL01</name>
+ </rtept>
+ <rtept lat="37.475062000" lon="-122.488531000">
+<time>2004-11-05T21:16:24Z</time>
+ <name>HMPILLPT</name>
+ </rtept>
+ <rtept lat="37.476448000" lon="-122.475800000">
+<time>2004-11-05T17:09:29Z</time>
+ <name>HMPILL02</name>
+ </rtept>
+ <rtept lat="37.495102000" lon="-122.483927000">
+<time>2004-11-05T17:09:30Z</time>
+ <name>HMPILL03</name>
+ </rtept>
+</rte>
</gpx>
<?xml version="1.0"?>
<NavObjectCollection created="19700101T000000Z">
<Name>Navigation Objects</Name>
- <Mark created="20041105T170909Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+ <Route created="19700101T000000Z" id="{00010203-0405-0607-0809-0a0b0c0d0e0f}">
+ <Marks>
+ {10111213-1415-1617-1819-1a1b1c1d1e1f}
+ {20212223-2425-2627-2829-2a2b2c2d2e2f}
+ {30313233-3435-3637-3839-3a3b3c3d3e3f}
+ {40414243-4445-4647-4849-4a4b4c4d4e4f}
+ {50515253-5455-5657-5859-5a5b5c5d5e5f}
+ {60616263-6465-6667-6869-6a6b6c6d6e6f}
+ {70717273-7475-7677-7879-7a7b7c7d7e7f}
+ {80818283-8485-8687-8889-8a8b8c8d8e8f}
+ {90919293-9495-9697-9899-9a9b9c9d9e9f}
+ {a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf}
+ </Marks>
+ <Name>Into The Bay</Name>
+ </Route>
+ <Mark created="20041105T170909Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
<Position>37.763290 N 122.282580 W</Position>
<Name>SFBALBAY</Name>
</Mark>
- <Mark created="20041105T170910Z" id="10111213-1415-1617-1819-1a1b1c1d1e1f">
+ <Mark created="20041105T170910Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
<Position>37.751613 N 122.339028 W</Position>
<Name>SFBAY001</Name>
</Mark>
- <Mark created="20041105T170913Z" id="20212223-2425-2627-2829-2a2b2c2d2e2f">
+ <Mark created="20041105T170913Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
<Position>37.817420 N 122.394305 W</Position>
<Name>SFBAY002</Name>
</Mark>
- <Mark created="20041105T170916Z" id="30313233-3435-3637-3839-3a3b3c3d3e3f">
+ <Mark created="20041105T170916Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
<Position>37.819339 N 122.478302 W</Position>
<Name>SFGGBRDG</Name>
</Mark>
- <Mark created="20041105T170920Z" id="40414243-4445-4647-4849-4a4b4c4d4e4f">
+ <Mark created="20041105T170920Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
<Position>37.773033 N 122.605838 W</Position>
<Name>SFCHNL01</Name>
</Mark>
- <Mark created="20041105T170926Z" id="50515253-5455-5657-5859-5a5b5c5d5e5f">
+ <Mark created="20041105T170926Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
<Position>37.518860 N 122.529914 W</Position>
<Name>HMCOLREF</Name>
</Mark>
- <Mark created="20041105T170927Z" id="60616263-6465-6667-6869-6a6b6c6d6e6f">
+ <Mark created="20041105T170927Z" id="{70717273-7475-7677-7879-7a7b7c7d7e7f}">
<Position>37.482348 N 122.507704 W</Position>
<Name>HMPILL01</Name>
</Mark>
- <Mark created="20041105T170929Z" id="70717273-7475-7677-7879-7a7b7c7d7e7f">
+ <Mark created="20041105T211624Z" id="{80818283-8485-8687-8889-8a8b8c8d8e8f}">
+ <Position>37.475062 N 122.488531 W</Position>
+ <Name>HMPILLPT</Name>
+ </Mark>
+ <Mark created="20041105T170929Z" id="{90919293-9495-9697-9899-9a9b9c9d9e9f}">
<Position>37.476448 N 122.475800 W</Position>
<Name>HMPILL02</Name>
</Mark>
- <Mark created="20041105T170930Z" id="80818283-8485-8687-8889-8a8b8c8d8e8f">
+ <Mark created="20041105T170930Z" id="{a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf}">
<Position>37.495102 N 122.483927 W</Position>
<Name>HMPILL03</Name>
</Mark>
- <Mark created="20041105T211300Z" id="90919293-9495-9697-9899-9a9b9c9d9e9f">
+ <Mark created="20041105T211300Z" id="{b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf}">
<Position>37.229349 N 122.441589 W</Position>
<Name>PESCDR01</Name>
</Mark>
- <Mark created="20041105T211324Z" id="a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf">
+ <Mark created="20041105T211324Z" id="{c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf}">
<Position>37.183397 N 122.411904 W</Position>
<Name>PIGEON01</Name>
</Mark>
- <Mark created="20041105T211341Z" id="b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf">
+ <Mark created="20041105T211341Z" id="{d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf}">
<Position>37.090736 N 122.348775 W</Position>
<Name>ANONUV01</Name>
</Mark>
- <Mark created="20041105T211409Z" id="c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf">
+ <Mark created="20041105T211409Z" id="{e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef}">
<Position>36.929502 N 122.113725 W</Position>
<Name>SCRUZ01</Name>
</Mark>
- <Mark created="20041105T211416Z" id="d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf">
+ <Mark created="20041105T211416Z" id="{f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff}">
<Position>36.934235 N 122.022130 W</Position>
<Name>SCRUZ02</Name>
</Mark>
- <Mark created="20041105T211420Z" id="e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef">
+ <Mark created="20041105T211420Z" id="{00010203-0405-0607-0809-0a0b0c0d0e0f}">
<Position>36.960666 N 122.024734 W</Position>
<Name>SCRUZENT</Name>
</Mark>
- <Mark created="20041105T211624Z" id="f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff">
- <Position>37.475062 N 122.488531 W</Position>
- <Name>HMPILLPT</Name>
- </Mark>
- <Mark created="20041105T212422Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+ <Mark created="20041105T212422Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
<Position>36.581344 N 121.995411 W</Position>
<Name>CYPRSSPT</Name>
</Mark>
- <Mark created="20041105T212438Z" id="10111213-1415-1617-1819-1a1b1c1d1e1f">
+ <Mark created="20041105T212438Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
<Position>36.301110 N 121.919097 W</Position>
<Name>PTSUR</Name>
</Mark>
- <Mark created="20041105T212515Z" id="20212223-2425-2627-2829-2a2b2c2d2e2f">
+ <Mark created="20041105T212515Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
<Position>36.238177 N 121.855209 W</Position>
<Name>COOPERPT</Name>
</Mark>
- <Mark created="20041105T212526Z" id="30313233-3435-3637-3839-3a3b3c3d3e3f">
+ <Mark created="20041105T212526Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
<Position>36.225175 N 121.801314 W</Position>
<Name>PFEIFENT</Name>
</Mark>
- <Mark created="20041105T212531Z" id="40414243-4445-4647-4849-4a4b4c4d4e4f">
+ <Mark created="20041105T212531Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
<Position>36.230449 N 121.797444 W</Position>
<Name>PFEIFANC</Name>
</Mark>
- <Mark created="20041105T212826Z" id="50515253-5455-5657-5859-5a5b5c5d5e5f">
+ <Mark created="20041105T212826Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
<Position>35.879801 N 121.498947 W</Position>
<Name>SANMRT01</Name>
</Mark>
- <Mark created="20041105T212833Z" id="60616263-6465-6667-6869-6a6b6c6d6e6f">
+ <Mark created="20041105T212833Z" id="{70717273-7475-7677-7879-7a7b7c7d7e7f}">
<Position>35.652801 N 121.308485 W</Position>
<Name>PDRSBLNC</Name>
</Mark>
- <Mark created="20041105T212850Z" id="70717273-7475-7677-7879-7a7b7c7d7e7f">
+ <Mark created="20041105T212850Z" id="{80818283-8485-8687-8889-8a8b8c8d8e8f}">
<Position>35.623297 N 121.185920 W</Position>
<Name>SNSMNENT</Name>
</Mark>
- <Mark created="20041105T212853Z" id="80818283-8485-8687-8889-8a8b8c8d8e8f">
+ <Mark created="20041105T212853Z" id="{90919293-9495-9697-9899-9a9b9c9d9e9f}">
<Position>35.640478 N 121.183772 W</Position>
<Name>SNSMNANC</Name>
</Mark>
- <Mark created="20041105T213618Z" id="90919293-9495-9697-9899-9a9b9c9d9e9f">
+ <Mark created="20041105T213618Z" id="{a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf}">
<Position>35.572353 N 121.152797 W</Position>
<Name>CAMBRIA</Name>
</Mark>
- <Mark created="20041105T213626Z" id="a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf">
+ <Mark created="20041105T213626Z" id="{b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf}">
<Position>35.449214 N 121.020825 W</Position>
<Name>PTESTERO</Name>
</Mark>
- <Mark created="20041105T213635Z" id="b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf">
+ <Mark created="20041105T213635Z" id="{c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf}">
<Position>35.216602 N 120.928391 W</Position>
<Name>PTBUCHON</Name>
</Mark>
- <Mark created="20041105T213642Z" id="c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf">
+ <Mark created="20041105T213642Z" id="{d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf}">
<Position>34.883361 N 120.684631 W</Position>
<Name>PTSAL01</Name>
</Mark>
- <Mark created="20041105T213647Z" id="d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf">
+ <Mark created="20041105T213647Z" id="{e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef}">
<Position>34.884641 N 120.652026 W</Position>
<Name>PTSALENT</Name>
</Mark>
- <Mark created="20041105T213704Z" id="e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef">
+ <Mark created="20041105T213704Z" id="{f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff}">
<Position>34.896555 N 120.649124 W</Position>
<Name>PTSALANC</Name>
</Mark>
- <Mark created="20041105T213949Z" id="f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff">
+ <Mark created="20041105T213949Z" id="{00010203-0405-0607-0809-0a0b0c0d0e0f}">
<Position>34.758180 N 120.642516 W</Position>
<Name>PURSMAPT</Name>
</Mark>
- <Mark created="20041105T213954Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+ <Mark created="20041105T213954Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
<Position>34.572579 N 120.663636 W</Position>
<Name>PTARGLLO</Name>
</Mark>
- <Mark created="20041105T214005Z" id="10111213-1415-1617-1819-1a1b1c1d1e1f">
+ <Mark created="20041105T214005Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
<Position>34.113844 N 120.492630 W</Position>
<Name>SANMGL01</Name>
</Mark>
- <Mark created="20041105T214044Z" id="20212223-2425-2627-2829-2a2b2c2d2e2f">
+ <Mark created="20041105T214044Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
<Position>34.029483 N 120.471409 W</Position>
<Name>SANMGL02</Name>
</Mark>
- <Mark created="20041105T214048Z" id="30313233-3435-3637-3839-3a3b3c3d3e3f">
+ <Mark created="20041105T214048Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
<Position>34.019184 N 120.444197 W</Position>
<Name>SANMGL03</Name>
</Mark>
- <Mark created="20041105T214057Z" id="40414243-4445-4647-4849-4a4b4c4d4e4f">
+ <Mark created="20041105T214057Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
<Position>34.023478 N 120.438209 W</Position>
<Name>ADCOVENT</Name>
</Mark>
- <Mark created="20041105T214059Z" id="50515253-5455-5657-5859-5a5b5c5d5e5f">
+ <Mark created="20041105T214059Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
<Position>34.028615 N 120.439696 W</Position>
<Name>ADCOVANC</Name>
</Mark>